New generation digital television systems include the possibility to broadcast applications in the bitstreams. These applications can then be downloaded by the receivers (set-top boxes), and be executed on their CPUs in order to present to the user dedicated features related to the television services he or she can access. These applications are built on top of Application Programming Interfaces (API) that offer the basic features available on the set-top box with which the high-level features to be proposed to the user can be built. Existing commercial software packages provide such an operating system for digital decoders.
One major feature of a digital receiver device is the management of the service lists displayed to the user. One of the first data the integrated receiver/decoder (IRD) must acquire before being operational is an image of the broadcast service list, described in the guide data contained in the bitstream. Then, the IRD software offers customized features, among which the possibility to create customized service lists from this broadcast list and store them in non-volatile memory. One of these customized lists can then be selected and presented to the user. It is from this list, for example, a list of preferred services, that the user chooses the service he wants to watch.
The invention applies to IRDs operating on any type of broadcast network, either satellite, cable or terrestrial. It deals with an efficient way to manage the consistency between the different service lists derived from the broadcast one by at least one user and stored in non-volatile memory. This has to be done in order to avoid such problems as a user or an application trying to connect to a service contained in one of its custom lists that has disappeared or been modified in the broadcast streams.
Most up-to-date digital television systems offers the possibility to install IRDs (i.e. build the list of services accessible to the IRD—IRD standing for Integrated Receiver Decoder) by means of service information data. In the DSS system, this data is contained in what is referred to as the Master Program Guide (MPG) that describes the services contained in the physical transport channels (PTC), grouping them by segments. The advantage of using this as a reference is first to acquire all data necessary to build an up-to-date broadcast service list from one single frequency (sometimes called the “barker channel”) and then to be able to update this information without requiring any action from the user.
A classical feature contained in IRDs is the possibility to build one or several customized service lists according to personal preferences, and to store them in non-volatile memory such that the user does not have to rebuild it every time the IRD is switched off.
When an update occurs in the broadcast MPG, and if the IRD is listening to new versions of this program guide, the list of broadcast services (which is resident in the decoder's memory and regularly updated) managed by the IRD software will be updated accordingly. If services have been deleted or modified (e.g. moved from one PTC to another), the customized service lists that have been derived from it should also be updated accordingly in order to make them consistent with it. Not performing this will result for the viewer in connections to non-existing services and hence unexplained black-screens.
The following methods could be used to verify the coherence of the service lists:                notifying the viewer of a change and asking him to check or rebuild all customised lists; this has one major drawback to request an explicit action from the user;        checking in the customised service lists whether their content is still compatible with the broadcast one as soon as this one changes; this other technique can be time consuming depending on the number of services and of service lists.        
Both have as a major drawback the time consumption, in the first case from the user, and in the second from the CPU.
The latter case is a problem as it can happen at any time and monopolize CPU processing power. Indeed, if around 600 services are available, a comparison with a number of customized list of a few hundred services each may take a certain amount of time.